(i) Technical Field
The present invention relates to a print-document conversion apparatus, a print-document conversion method, and a computer-readable medium storing a program.
(ii) Related Art
Print data that is described in a page description language (PDL), such as PostScript® or Portable Data Format (PDF) specified in ISO 32000-1, is converted into a raster image (a bitmap image) by a conversion module called a raster image processor (RIP), and is printed by a printer. Because the conversion module needs to perform language processing in which a PDL is interpreted, the conversion module is typically realized by software. Furthermore, in addition to a scheme in which PDL data is directly converted into a raster image, a system that performs two-step conversion has also been well known. The two-step conversion includes the following: converting PDL data into intermediate-language data, such as display lists, which can achieve a granularity lower than a granularity achieved by PDL commands, and buffering the intermediate-language data; and converting the buffered intermediate-language data into a raster image.
Hitherto, a system has also been known, which performs conversion of PDL data into a raster image or intermediate-language data in parallel using multiple conversion modules in predetermined units, such as in units of pages.
Furthermore, hitherto, omitting of conversion processing has also been performed as follows: when conversion processing is performed to convert PDL commands into a raster image or intermediate-language data, data regarding a result of the conversion processing is cached so that the data is associated with identification information concerning the PDL commands; and, when the PDL commands are utilized later, the cached data is used, thereby omitting conversion processing.
Hitherto, multiple conversion modules that operate in parallel have been executed, on a computer, as individual processes different from one another. When multiple conversion modules that are to be caused to operate in parallel are activated, on a computer, as individual processes different from one another, memory spaces different from one another are assigned to the individual processes. Accordingly, a cache is typically managed for each process.
In a case in which each of multiple processes that operate in parallel individually manages a cache, even when a processing result (conversion result) of processing a command that a certain first process attempts to process exists in the cache of a second process that is another process, the first process cannot use the processing result that exists in the cache of the second process having a memory space which is different from a memory space of the first process. Accordingly, the cache utilization efficiency is reduced, compared with a cache utilization efficiency in a case in which PDL data that is a conversion target is converted by a single conversion module so that the pieces of the PDL data are sequentially converted in order from the first piece of the PDL data without being subjected to parallel processing.
In order to increase the cache utilization efficiency, a scheme for achieving sharing of a cache among the multiple processes is also considered. However, in this scheme, a process for managing the shared cache is necessary, so that loads are imposed on resources such as memories of a computer. Furthermore, in order that individual conversion processing processes for converting print data read/write data from/into the shared cache, process-to-process communication is necessary. Accordingly, the performance of each of the conversion processing processes is reduced because of a load imposed by the process-to-process communication or the like.